#-*- coding: UTF-8 -*-
from pyramid.httpexceptions import HTTPFound
from pyramid.security import remember
from pyramid.security import forget




from scp.modelo.models import DBSession
from scp.modelo.Atributo import Atributo
from scp.modelo.Tipo_Dato import Tipo_Dato

from pyramid.response import Response
from pyramid.view import view_config
import json

import re

#@view_config(renderer='json')
def tipos_datos(request):
	"""Método controlador encargado de la administración de los Tipos Datos.
		URL asociada: /tipos_datos/{operacion}
		operacion:
			view, listado de tipos_datos
			editarAtributo, lista los tipos de datos asociados a un deteminado Atributo.
		@param request: Petición Http del cliente. 	
	"""
	
	dicParametros = request.matchdict
	
	
	session = DBSession()
	
	print 'dicParametros.get(operacion).find(?):' 
	print dicParametros.get('operacion').find('?')
	
	if dicParametros.get('operacion') == 'view':
		datosAll = session.query(Tipo_Dato).all()
		datosArray = []
		for datoIter in datosAll:
				aux = {'idTipo_Dato': datoIter.id, 'nombreTipo_Dato': datoIter.nombre}
				datosArray.append(aux)	
	
		response = Response()
		#response.body = json.dumps(dict(success = True, permisos = [{'idPermiso':'1', 'nombrePermiso': 'CREACION_USUARIO'}, {'idPermiso':'2', 'nombrePermiso': 'CREACION_ROL'}]))
		response.body = json.dumps(dict(success = True, tipos_datos = datosArray))
		response.content_type = 'application/json'
	
		return response
	
	elif dicParametros.get('operacion') == 'editarAtributo':
		
		#rolEditado = session.query(Rol).filter_by(id=request.params['idRol']).first()
		atributoEditado = session.query(Atributo).filter_by(id = request.params['idAtributo']).one()
		
		print ">>>id Atributo recibido de la vista!!"
		print request.params['idAtributo']
		
		print '>>>Atributo a ser Editado!'
		print atributoEditado.nombre
		
		
		'''datosAllEdit = atributoEditado.tipo_dato
		datosArrayEdit = []
		for tipoDatoIter in datosAllEdit:
			aux = tipoDatoIter.id
			datosArrayEdit.append(aux)'''	
	
	
		response = Response()
	
		response.body = json.dumps(dict(success = True, tipo_dato = atributoEditado.tipo_dato_id))
		response.content_type = 'application/json'
		return response 
	
